@@ -0,0 +1,53 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('account', '0047_auto_20200601_0242'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='lensmanincomeexpensesinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='lensmaninfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='lensmanloginloginfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ migrations.AlterField( |
|
| 29 |
+ model_name='tourguideinfo', |
|
| 30 |
+ name='status', |
|
| 31 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 32 |
+ ), |
|
| 33 |
+ migrations.AlterField( |
|
| 34 |
+ model_name='userincomeexpensesinfo', |
|
| 35 |
+ name='status', |
|
| 36 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 37 |
+ ), |
|
| 38 |
+ migrations.AlterField( |
|
| 39 |
+ model_name='userinfo', |
|
| 40 |
+ name='status', |
|
| 41 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 42 |
+ ), |
|
| 43 |
+ migrations.AlterField( |
|
| 44 |
+ model_name='userloginloginfo', |
|
| 45 |
+ name='status', |
|
| 46 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 47 |
+ ), |
|
| 48 |
+ migrations.AlterField( |
|
| 49 |
+ model_name='wechatinfo', |
|
| 50 |
+ name='status', |
|
| 51 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 52 |
+ ), |
|
| 53 |
+ ] |
@@ -8,12 +8,14 @@ from django_logit import logit |
||
| 8 | 8 |
from django_query import get_query_value |
| 9 | 9 |
from django_response import response |
| 10 | 10 |
from paginator import pagination |
| 11 |
+from pywe_miniapp import get_shareinfo |
|
| 12 |
+from pywe_storage import RedisStorage |
|
| 11 | 13 |
from TimeConvert import TimeConvert as tc |
| 12 | 14 |
|
| 13 | 15 |
from account.models import UserInfo |
| 14 | 16 |
from coupon.models import UserCouponInfo |
| 15 |
-from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityInfo, MemberActivitySigninInfo, |
|
| 16 |
- MemberActivitySignupInfo, RightInfo) |
|
| 17 |
+from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityGroupShareInfo, MemberActivityInfo, |
|
| 18 |
+ MemberActivitySigninInfo, MemberActivitySignupInfo, RightInfo) |
|
| 17 | 19 |
from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode, |
| 18 | 20 |
MemberRightStatusCode, UserStatusCode) |
| 19 | 21 |
from utils.redis.connect import r |
@@ -21,6 +23,9 @@ from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO |
||
| 21 | 23 |
from utils.redis.rshot import get_member_shot_data |
| 22 | 24 |
|
| 23 | 25 |
|
| 26 |
+WECHAT = settings.WECHAT |
|
| 27 |
+ |
|
| 28 |
+ |
|
| 24 | 29 |
@logit |
| 25 | 30 |
def member(request): |
| 26 | 31 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
@@ -44,7 +49,7 @@ def member(request): |
||
| 44 | 49 |
|
| 45 | 50 |
upgrade_info, _ = r.getdel(MEMBER_UPGRADE_INFO % (brand_id, user_id)) |
| 46 | 51 |
|
| 47 |
- return response(200, data={
|
|
| 52 |
+ return response(data={
|
|
| 48 | 53 |
'nickname': user.final_nickname, |
| 49 | 54 |
'avatar': user.avatar, |
| 50 | 55 |
'integral': user.integral, |
@@ -74,7 +79,7 @@ def rights(request): |
||
| 74 | 79 |
rights = RightInfo.objects.filter(status=True).order_by('position')
|
| 75 | 80 |
rights = [right.data for right in rights] |
| 76 | 81 |
|
| 77 |
- return response(200, data={
|
|
| 82 |
+ return response(data={
|
|
| 78 | 83 |
'nickname': user.final_nickname, |
| 79 | 84 |
'avatar': user.avatar, |
| 80 | 85 |
'integral': user.integral, |
@@ -97,7 +102,7 @@ def right_detail(request): |
||
| 97 | 102 |
except RightInfo.DoesNotExist: |
| 98 | 103 |
return response(MemberRightStatusCode.RIGHT_NOT_FOUND) |
| 99 | 104 |
|
| 100 |
- return response(200, data={
|
|
| 105 |
+ return response(data={
|
|
| 101 | 106 |
'right': right.data, |
| 102 | 107 |
}) |
| 103 | 108 |
|
@@ -121,7 +126,7 @@ def goods(request): |
||
| 121 | 126 |
else: |
| 122 | 127 |
goods.append(good.data(user_id)) |
| 123 | 128 |
|
| 124 |
- return response(200, data={
|
|
| 129 |
+ return response(data={
|
|
| 125 | 130 |
'nickname': user.final_nickname, |
| 126 | 131 |
'avatar': user.avatar, |
| 127 | 132 |
'integral': user.integral, |
@@ -151,7 +156,7 @@ def good_detail(request): |
||
| 151 | 156 |
except GoodsInfo.DoesNotExist: |
| 152 | 157 |
return response(MemberGoodStatusCode.GOOD_NOT_FOUND) |
| 153 | 158 |
|
| 154 |
- return response(200, data={
|
|
| 159 |
+ return response(data={
|
|
| 155 | 160 |
'nickname': user.final_nickname, |
| 156 | 161 |
'avatar': user.avatar, |
| 157 | 162 |
'integral': user.integral, |
@@ -233,7 +238,7 @@ def good_exchange(request): |
||
| 233 | 238 |
|
| 234 | 239 |
goods.append(good.data(user_id)) |
| 235 | 240 |
|
| 236 |
- return response(200, data={
|
|
| 241 |
+ return response(data={
|
|
| 237 | 242 |
'nickname': user.final_nickname, |
| 238 | 243 |
'avatar': user.avatar, |
| 239 | 244 |
'integral': user.integral, |
@@ -256,7 +261,7 @@ def coupons(request): |
||
| 256 | 261 |
coupons, left = pagination(coupons, page, num) |
| 257 | 262 |
coupons = [coupon.data for coupon in coupons if not coupon.has_used] |
| 258 | 263 |
|
| 259 |
- return response(200, data={
|
|
| 264 |
+ return response(data={
|
|
| 260 | 265 |
'coupons': coupons, |
| 261 | 266 |
'left': left, |
| 262 | 267 |
}) |
@@ -272,7 +277,7 @@ def user_coupon_detail(request): |
||
| 272 | 277 |
except UserCouponInfo.DoesNotExist: |
| 273 | 278 |
return response(MemberCouponStatusCode.USER_COUPON_NOT_FOUND) |
| 274 | 279 |
|
| 275 |
- return response(200, data=coupon.data) |
|
| 280 |
+ return response(data=coupon.data) |
|
| 276 | 281 |
|
| 277 | 282 |
|
| 278 | 283 |
@logit |
@@ -301,14 +306,14 @@ def user_coupon_use(request): |
||
| 301 | 306 |
coupon.used_at = tc.utc_datetime() |
| 302 | 307 |
coupon.save() |
| 303 | 308 |
|
| 304 |
- return response(200, data=coupon.data) |
|
| 309 |
+ return response(data=coupon.data) |
|
| 305 | 310 |
|
| 306 | 311 |
|
| 307 | 312 |
@logit |
| 308 | 313 |
def integrals(request): |
| 309 | 314 |
brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
| 310 | 315 |
|
| 311 |
- return response(200, data={
|
|
| 316 |
+ return response(data={
|
|
| 312 | 317 |
'shots_types': get_member_shot_data(), |
| 313 | 318 |
'enable_photo_upvote_integral': True, |
| 314 | 319 |
'mp_url': 'https://mp.weixin.qq.com/s/2K6PAnf3KrxtrP40-DBuww', |
@@ -339,7 +344,7 @@ def activity_list(request): |
||
| 339 | 344 |
else: |
| 340 | 345 |
activitys.append(act.data(user_id)) |
| 341 | 346 |
|
| 342 |
- return response(200, data={
|
|
| 347 |
+ return response(data={
|
|
| 343 | 348 |
'banners': banners, |
| 344 | 349 |
'activitys': activitys, |
| 345 | 350 |
}) |
@@ -356,7 +361,7 @@ def activity_detail(request): |
||
| 356 | 361 |
except MemberActivityInfo.DoesNotExist: |
| 357 | 362 |
return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
| 358 | 363 |
|
| 359 |
- return response(200, data={
|
|
| 364 |
+ return response(data={
|
|
| 360 | 365 |
'activity': act.details(user_id), |
| 361 | 366 |
}) |
| 362 | 367 |
|
@@ -383,7 +388,7 @@ def activity_signup(request): |
||
| 383 | 388 |
# TODO: 立即推送模版消息(报名成功,时间,地点) |
| 384 | 389 |
# TODO: 延迟(活动当天)推送模版消息(时间,地点) |
| 385 | 390 |
|
| 386 |
- return response(200, data={
|
|
| 391 |
+ return response(data={
|
|
| 387 | 392 |
'activity': act.data(user_id), |
| 388 | 393 |
}) |
| 389 | 394 |
|
@@ -415,6 +420,63 @@ def activity_signin(request): |
||
| 415 | 420 |
|
| 416 | 421 |
# TODO: 立即推送模版消息(感谢您参加活动,获得的积分) |
| 417 | 422 |
|
| 418 |
- return response(200, data={
|
|
| 423 |
+ return response(data={
|
|
| 419 | 424 |
'activity': act.data(user_id), |
| 420 | 425 |
}) |
| 426 |
+ |
|
| 427 |
+ |
|
| 428 |
+def get_group_share_info_integral(share_user_id, open_gid, group_share_integral): |
|
| 429 |
+ # 校验该分享人是否已领取该群积分 |
|
| 430 |
+ has_integral = MemberActivityGroupShareInfo.objects.filter(share_user_id=share_user_id, open_gid=open_gid, is_integral=True).exists() |
|
| 431 |
+ if has_integral: |
|
| 432 |
+ return False, 0 |
|
| 433 |
+ # TODO: 其他限制条件 |
|
| 434 |
+ return True, group_share_integral |
|
| 435 |
+ |
|
| 436 |
+ |
|
| 437 |
+@logit |
|
| 438 |
+def activity_group_share(request): |
|
| 439 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
| 440 |
+ share_user_id = request.POST.get('share_user_id', '')
|
|
| 441 |
+ click_user_id = request.POST.get('click_user_id', '')
|
|
| 442 |
+ activity_id = request.POST.get('activity_id')
|
|
| 443 |
+ |
|
| 444 |
+ wxcfg = WECHAT.get('MINIAPP', {})
|
|
| 445 |
+ |
|
| 446 |
+ appid = wxcfg.get('appID')
|
|
| 447 |
+ secret = wxcfg.get('appsecret')
|
|
| 448 |
+ |
|
| 449 |
+ iv = request.POST.get('iv', '')
|
|
| 450 |
+ encryptedData = request.POST.get('encryptedData', '')
|
|
| 451 |
+ |
|
| 452 |
+ # {
|
|
| 453 |
+ # "openGId": "OPENGID" |
|
| 454 |
+ # } |
|
| 455 |
+ shareinfo = get_shareinfo(appid=appid, secret=secret, unid=click_user_id, session_key=None, encryptedData=encryptedData, iv=iv, storage=RedisStorage(r)) |
|
| 456 |
+ |
|
| 457 |
+ open_gid = shareinfo.get('openGId')
|
|
| 458 |
+ |
|
| 459 |
+ if not open_gid: |
|
| 460 |
+ return response() |
|
| 461 |
+ |
|
| 462 |
+ try: |
|
| 463 |
+ act = MemberActivityInfo.objects.select_for_update().get(activity_id=activity_id, status=True) |
|
| 464 |
+ except MemberActivityInfo.DoesNotExist: |
|
| 465 |
+ return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
|
| 466 |
+ |
|
| 467 |
+ # 判断是否给积分 & 给多少积分 |
|
| 468 |
+ is_integral, integral = get_group_share_info_integral(share_user_id, open_gid, act.group_share_integral) |
|
| 469 |
+ |
|
| 470 |
+ MemberActivityGroupShareInfo.objects.create(**{
|
|
| 471 |
+ 'brand_id': act.brand_id, |
|
| 472 |
+ 'brand_name': act.brand_name, |
|
| 473 |
+ 'share_user_id': share_user_id, |
|
| 474 |
+ 'click_user_id': click_user_id, |
|
| 475 |
+ 'open_gid': open_gid, |
|
| 476 |
+ 'activity_id': activity_id, |
|
| 477 |
+ 'title': act.title, |
|
| 478 |
+ 'is_integral': is_integral, |
|
| 479 |
+ 'integral': integral, |
|
| 480 |
+ }) |
|
| 481 |
+ |
|
| 482 |
+ return response(data={})
|
@@ -363,6 +363,8 @@ urlpatterns += [ |
||
| 363 | 363 |
url(r'^member/activity/signup$', member_views.activity_signup, name='member_activity_signup'), |
| 364 | 364 |
url(r'^member/activity/signin$', member_views.activity_signin, name='member_activity_signin'), |
| 365 | 365 |
|
| 366 |
+ url(r'^member/activity/group_share$', member_views.activity_group_share, name='member_activity_group_share'), |
|
| 367 |
+ |
|
| 366 | 368 |
url(r'^rights$', member_views.rights, name='rights'), |
| 367 | 369 |
url(r'^right/detail$', member_views.right_detail, name='right_detail'), |
| 368 | 370 |
url(r'^goods$', member_views.goods, name='goods'), |
@@ -0,0 +1,28 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('coupon', '0015_auto_20200727_1720'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='couponinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='usercouponinfo', |
|
| 20 |
+ name='coupon_from', |
|
| 21 |
+ field=models.CharField(blank=True, db_index=True, default='MEMBER_BENEFITS', help_text='劵来源', max_length=32, null=True, verbose_name='coupon_from'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='usercouponinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ ] |
@@ -0,0 +1,43 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('group', '0045_auto_20180930_1159'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='groupinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='groupphotoinfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='groupphotoorderinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ migrations.AlterField( |
|
| 29 |
+ model_name='groupuserinfo', |
|
| 30 |
+ name='status', |
|
| 31 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 32 |
+ ), |
|
| 33 |
+ migrations.AlterField( |
|
| 34 |
+ model_name='photocommentinfo', |
|
| 35 |
+ name='status', |
|
| 36 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 37 |
+ ), |
|
| 38 |
+ migrations.AlterField( |
|
| 39 |
+ model_name='photothumbupinfo', |
|
| 40 |
+ name='status', |
|
| 41 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 42 |
+ ), |
|
| 43 |
+ ] |
@@ -0,0 +1,18 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('guideline', '0003_auto_20190826_1537'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='screenadmininfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ ] |
@@ -0,0 +1,23 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('integral', '0019_saleclerksubmitloginfo_is_upload_qiniu'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='saleclerkintegralincomeexpensesinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='saleclerksubmitloginfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ ] |
@@ -0,0 +1,33 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('logs', '0011_auto_20200309_1735'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='mchinfodecryptloginfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='mchinfoencryptloginfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='mchloginfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ migrations.AlterField( |
|
| 29 |
+ model_name='mchsearchmodelandcameraloginfo', |
|
| 30 |
+ name='status', |
|
| 31 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 32 |
+ ), |
|
| 33 |
+ ] |
@@ -0,0 +1,18 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('marketcode', '0003_auto_20200114_0220'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='marketcodeinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ ] |
@@ -0,0 +1,98 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('mch', '0057_auto_20200602_1403'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='activityinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='administratorinfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='brandinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ migrations.AlterField( |
|
| 29 |
+ model_name='brandmodeldistributorpriceinfo', |
|
| 30 |
+ name='status', |
|
| 31 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 32 |
+ ), |
|
| 33 |
+ migrations.AlterField( |
|
| 34 |
+ model_name='cameramodelinfo', |
|
| 35 |
+ name='status', |
|
| 36 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 37 |
+ ), |
|
| 38 |
+ migrations.AlterField( |
|
| 39 |
+ model_name='consumeinfosubmitloginfo', |
|
| 40 |
+ name='status', |
|
| 41 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 42 |
+ ), |
|
| 43 |
+ migrations.AlterField( |
|
| 44 |
+ model_name='distributorinfo', |
|
| 45 |
+ name='status', |
|
| 46 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 47 |
+ ), |
|
| 48 |
+ migrations.AlterField( |
|
| 49 |
+ model_name='latestappinfo', |
|
| 50 |
+ name='status', |
|
| 51 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 52 |
+ ), |
|
| 53 |
+ migrations.AlterField( |
|
| 54 |
+ model_name='latestappscreeninfo', |
|
| 55 |
+ name='status', |
|
| 56 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 57 |
+ ), |
|
| 58 |
+ migrations.AlterField( |
|
| 59 |
+ model_name='maintenancemaninfo', |
|
| 60 |
+ name='sex', |
|
| 61 |
+ field=models.IntegerField(choices=[(0, '未知'), (1, '男'), (2, '女')], default=0, help_text='Sex', verbose_name='sex'), |
|
| 62 |
+ ), |
|
| 63 |
+ migrations.AlterField( |
|
| 64 |
+ model_name='maintenancemaninfo', |
|
| 65 |
+ name='status', |
|
| 66 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 67 |
+ ), |
|
| 68 |
+ migrations.AlterField( |
|
| 69 |
+ model_name='modelcamerabodyinfo', |
|
| 70 |
+ name='status', |
|
| 71 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 72 |
+ ), |
|
| 73 |
+ migrations.AlterField( |
|
| 74 |
+ model_name='modelimageinfo', |
|
| 75 |
+ name='status', |
|
| 76 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 77 |
+ ), |
|
| 78 |
+ migrations.AlterField( |
|
| 79 |
+ model_name='modelinfo', |
|
| 80 |
+ name='status', |
|
| 81 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 82 |
+ ), |
|
| 83 |
+ migrations.AlterField( |
|
| 84 |
+ model_name='operatorinfo', |
|
| 85 |
+ name='status', |
|
| 86 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 87 |
+ ), |
|
| 88 |
+ migrations.AlterField( |
|
| 89 |
+ model_name='saleclerkinfo', |
|
| 90 |
+ name='sex', |
|
| 91 |
+ field=models.IntegerField(choices=[(0, '未知'), (1, '男'), (2, '女')], default=0, help_text='Sex', verbose_name='sex'), |
|
| 92 |
+ ), |
|
| 93 |
+ migrations.AlterField( |
|
| 94 |
+ model_name='saleclerkinfo', |
|
| 95 |
+ name='status', |
|
| 96 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 97 |
+ ), |
|
| 98 |
+ ] |
@@ -0,0 +1,77 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+import shortuuidfield.fields |
|
| 5 |
+ |
|
| 6 |
+ |
|
| 7 |
+class Migration(migrations.Migration): |
|
| 8 |
+ |
|
| 9 |
+ dependencies = [ |
|
| 10 |
+ ('member', '0018_memberactivityinfo_is_signup'),
|
|
| 11 |
+ ] |
|
| 12 |
+ |
|
| 13 |
+ operations = [ |
|
| 14 |
+ migrations.CreateModel( |
|
| 15 |
+ name='MemberActivityGroupShareInfo', |
|
| 16 |
+ fields=[ |
|
| 17 |
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
| 18 |
+ ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
|
|
| 19 |
+ ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
|
|
| 20 |
+ ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
|
|
| 21 |
+ ('brand_id', models.CharField(blank=True, db_index=True, help_text='品牌唯一标识', max_length=32, null=True, verbose_name='brand_id')),
|
|
| 22 |
+ ('brand_name', models.CharField(blank=True, help_text='品牌名称', max_length=255, null=True, verbose_name='brand_name')),
|
|
| 23 |
+ ('group_share_id', shortuuidfield.fields.ShortUUIDField(blank=True, db_index=True, editable=False, help_text='活动群组分享唯一标识', max_length=22, null=True, unique=True)),
|
|
| 24 |
+ ('share_user_id', models.CharField(blank=True, db_index=True, help_text='分享用户唯一标识', max_length=32, null=True, verbose_name='share_user_id')),
|
|
| 25 |
+ ('click_user_id', models.CharField(blank=True, db_index=True, help_text='点击用户唯一标识', max_length=32, null=True, verbose_name='click_user_id')),
|
|
| 26 |
+ ('open_gid', models.CharField(blank=True, db_index=True, help_text='群组唯一标识', max_length=32, null=True, verbose_name='open_gid')),
|
|
| 27 |
+ ('activity_id', models.CharField(blank=True, db_index=True, help_text='活动唯一标识', max_length=32, null=True, verbose_name='activity_id')),
|
|
| 28 |
+ ('title', models.CharField(blank=True, help_text='活动名称', max_length=255, null=True, verbose_name='title')),
|
|
| 29 |
+ ('is_integral', models.BooleanField(default=False, help_text='是否有积分', verbose_name='is_integral')),
|
|
| 30 |
+ ('integral', models.IntegerField(default=0, help_text='积分', verbose_name='integral')),
|
|
| 31 |
+ ], |
|
| 32 |
+ options={
|
|
| 33 |
+ 'verbose_name': '会员活动群组分享信息', |
|
| 34 |
+ 'verbose_name_plural': '会员活动群组分享信息', |
|
| 35 |
+ }, |
|
| 36 |
+ ), |
|
| 37 |
+ migrations.AddField( |
|
| 38 |
+ model_name='memberactivityinfo', |
|
| 39 |
+ name='group_share_integral', |
|
| 40 |
+ field=models.IntegerField(default=0, help_text='群组分享会员积分', verbose_name='group_share_integral'), |
|
| 41 |
+ ), |
|
| 42 |
+ migrations.AlterField( |
|
| 43 |
+ model_name='goodsinfo', |
|
| 44 |
+ name='status', |
|
| 45 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 46 |
+ ), |
|
| 47 |
+ migrations.AlterField( |
|
| 48 |
+ model_name='goodsorderinfo', |
|
| 49 |
+ name='status', |
|
| 50 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 51 |
+ ), |
|
| 52 |
+ migrations.AlterField( |
|
| 53 |
+ model_name='memberactivityinfo', |
|
| 54 |
+ name='status', |
|
| 55 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 56 |
+ ), |
|
| 57 |
+ migrations.AlterField( |
|
| 58 |
+ model_name='memberactivitysignininfo', |
|
| 59 |
+ name='status', |
|
| 60 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 61 |
+ ), |
|
| 62 |
+ migrations.AlterField( |
|
| 63 |
+ model_name='memberactivitysignupinfo', |
|
| 64 |
+ name='status', |
|
| 65 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 66 |
+ ), |
|
| 67 |
+ migrations.AlterField( |
|
| 68 |
+ model_name='rightinfo', |
|
| 69 |
+ name='status', |
|
| 70 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 71 |
+ ), |
|
| 72 |
+ migrations.AlterField( |
|
| 73 |
+ model_name='shottypeinfo', |
|
| 74 |
+ name='status', |
|
| 75 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 76 |
+ ), |
|
| 77 |
+ ] |
@@ -297,6 +297,7 @@ class MemberActivityInfo(BaseModelMixin): |
||
| 297 | 297 |
lon = models.FloatField(_(u'lon'), default=1.0, help_text=u'经度') |
| 298 | 298 |
|
| 299 | 299 |
integral = models.IntegerField(_(u'integral'), default=0, help_text=u'会员积分') |
| 300 |
+ group_share_integral = models.IntegerField(_(u'group_share_integral'), default=0, help_text=u'群组分享会员积分') |
|
| 300 | 301 |
|
| 301 | 302 |
image = models.ImageField(_(u'image'), upload_to=upload_path, blank=True, null=True, help_text=u'活动内容图片') |
| 302 | 303 |
|
@@ -453,3 +454,29 @@ class MemberActivitySigninInfo(BaseModelMixin): |
||
| 453 | 454 |
|
| 454 | 455 |
def __unicode__(self): |
| 455 | 456 |
return unicode(self.pk) |
| 457 |
+ |
|
| 458 |
+ |
|
| 459 |
+class MemberActivityGroupShareInfo(BaseModelMixin): |
|
| 460 |
+ brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) |
|
| 461 |
+ brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称') |
|
| 462 |
+ |
|
| 463 |
+ group_share_id = ShortUUIDField(_(u'group_share_id'), max_length=32, blank=True, null=True, help_text=u'活动群组分享唯一标识', db_index=True, unique=True) |
|
| 464 |
+ |
|
| 465 |
+ share_user_id = models.CharField(_(u'share_user_id'), max_length=32, blank=True, null=True, help_text=u'分享用户唯一标识', db_index=True) |
|
| 466 |
+ click_user_id = models.CharField(_(u'click_user_id'), max_length=32, blank=True, null=True, help_text=u'点击用户唯一标识', db_index=True) |
|
| 467 |
+ |
|
| 468 |
+ open_gid = models.CharField(_(u'open_gid'), max_length=32, blank=True, null=True, help_text=u'群组唯一标识', db_index=True) |
|
| 469 |
+ |
|
| 470 |
+ activity_id = models.CharField(_(u'activity_id'), max_length=32, blank=True, null=True, help_text=u'活动唯一标识', db_index=True) |
|
| 471 |
+ |
|
| 472 |
+ title = models.CharField(_(u'title'), max_length=255, blank=True, null=True, help_text=u'活动名称') |
|
| 473 |
+ |
|
| 474 |
+ is_integral = models.BooleanField(_(u'is_integral'), default=False, help_text=u'是否有积分') |
|
| 475 |
+ integral = models.IntegerField(_(u'integral'), default=0, help_text=u'积分') |
|
| 476 |
+ |
|
| 477 |
+ class Meta: |
|
| 478 |
+ verbose_name = _(u'会员活动群组分享信息') |
|
| 479 |
+ verbose_name_plural = _(u'会员活动群组分享信息') |
|
| 480 |
+ |
|
| 481 |
+ def __unicode__(self): |
|
| 482 |
+ return unicode(self.pk) |
@@ -0,0 +1,38 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('message', '0013_auto_20180103_0446'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='systemmessagedeleteinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='systemmessageinfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='systemmessagereadinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ migrations.AlterField( |
|
| 29 |
+ model_name='usermessageinfo', |
|
| 30 |
+ name='msg_type', |
|
| 31 |
+ field=models.CharField(db_index=True, default='system', help_text='消息类型', max_length=8, verbose_name='msg_type'), |
|
| 32 |
+ ), |
|
| 33 |
+ migrations.AlterField( |
|
| 34 |
+ model_name='usermessageinfo', |
|
| 35 |
+ name='status', |
|
| 36 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 37 |
+ ), |
|
| 38 |
+ ] |
@@ -0,0 +1,48 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('operation', '0018_auto_20180114_2314'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='appsettingsinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='boxprogramversioninfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='feedbackinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ migrations.AlterField( |
|
| 29 |
+ model_name='guestentrancecontrolinfo', |
|
| 30 |
+ name='status', |
|
| 31 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 32 |
+ ), |
|
| 33 |
+ migrations.AlterField( |
|
| 34 |
+ model_name='latestappinfo', |
|
| 35 |
+ name='status', |
|
| 36 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 37 |
+ ), |
|
| 38 |
+ migrations.AlterField( |
|
| 39 |
+ model_name='patchinfo', |
|
| 40 |
+ name='status', |
|
| 41 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 42 |
+ ), |
|
| 43 |
+ migrations.AlterField( |
|
| 44 |
+ model_name='splashinfo', |
|
| 45 |
+ name='status', |
|
| 46 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 47 |
+ ), |
|
| 48 |
+ ] |
@@ -0,0 +1,18 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('pay', '0011_auto_20180103_0446'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='orderinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ ] |
@@ -0,0 +1,28 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('photo', '0013_auto_20180103_0446'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='photosinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='photouuidinfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='uuidinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ ] |
@@ -11,7 +11,7 @@ django-json-render==1.0.3 |
||
| 11 | 11 |
django-json-response==1.1.5 |
| 12 | 12 |
django-logit==1.1.3 |
| 13 | 13 |
django-mobi2==1.0.2 |
| 14 |
-django-models-ext==1.1.9 |
|
| 14 |
+django-models-ext==1.1.10 |
|
| 15 | 15 |
django-multidomain==1.1.4 |
| 16 | 16 |
django-paginator2==1.1.3 |
| 17 | 17 |
django-query==1.0.6 |
@@ -7,7 +7,7 @@ pywe-marketcode==1.0.3 |
||
| 7 | 7 |
pywe-membercard==1.0.1 |
| 8 | 8 |
pywe-custom-message==1.0.1 |
| 9 | 9 |
pywe-event-message==1.0.1 |
| 10 |
-pywe-miniapp==1.1.5 |
|
| 10 |
+pywe-miniapp==1.1.6 |
|
| 11 | 11 |
pywe-oauth==1.1.1 |
| 12 | 12 |
pywe-pay==1.0.13 |
| 13 | 13 |
pywe-pay-notify==1.0.5 |
@@ -0,0 +1,28 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('sales', '0007_supersalesresponsibilityinfomodelssalestatisticinfo_sr_avatar'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='salesresponsibilityinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='salesresponsibilityinfomodelssalestatisticinfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='supersalesresponsibilityinfomodelssalestatisticinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ ] |
@@ -0,0 +1,18 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('staff', '0001_initial'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='staffdeleteclerksalesubmitloginfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ ] |
@@ -0,0 +1,68 @@ |
||
| 1 |
+# Generated by Django 2.2.15 on 2020-11-29 17:31 |
|
| 2 |
+ |
|
| 3 |
+from django.db import migrations, models |
|
| 4 |
+ |
|
| 5 |
+ |
|
| 6 |
+class Migration(migrations.Migration): |
|
| 7 |
+ |
|
| 8 |
+ dependencies = [ |
|
| 9 |
+ ('statistic', '0015_modelsalestatisticinfo_saleclerks'),
|
|
| 10 |
+ ] |
|
| 11 |
+ |
|
| 12 |
+ operations = [ |
|
| 13 |
+ migrations.AlterField( |
|
| 14 |
+ model_name='consumedistributorsalestatisticinfo', |
|
| 15 |
+ name='status', |
|
| 16 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 17 |
+ ), |
|
| 18 |
+ migrations.AlterField( |
|
| 19 |
+ model_name='consumemodelsalestatisticinfo', |
|
| 20 |
+ name='status', |
|
| 21 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 22 |
+ ), |
|
| 23 |
+ migrations.AlterField( |
|
| 24 |
+ model_name='consumeprovincesalestatisticinfo', |
|
| 25 |
+ name='status', |
|
| 26 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 27 |
+ ), |
|
| 28 |
+ migrations.AlterField( |
|
| 29 |
+ model_name='consumesalestatisticinfo', |
|
| 30 |
+ name='status', |
|
| 31 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 32 |
+ ), |
|
| 33 |
+ migrations.AlterField( |
|
| 34 |
+ model_name='consumeuserstatisticinfo', |
|
| 35 |
+ name='status', |
|
| 36 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 37 |
+ ), |
|
| 38 |
+ migrations.AlterField( |
|
| 39 |
+ model_name='distributorsalestatisticinfo', |
|
| 40 |
+ name='status', |
|
| 41 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 42 |
+ ), |
|
| 43 |
+ migrations.AlterField( |
|
| 44 |
+ model_name='modelsalestatisticinfo', |
|
| 45 |
+ name='status', |
|
| 46 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 47 |
+ ), |
|
| 48 |
+ migrations.AlterField( |
|
| 49 |
+ model_name='provincesalestatisticinfo', |
|
| 50 |
+ name='status', |
|
| 51 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 52 |
+ ), |
|
| 53 |
+ migrations.AlterField( |
|
| 54 |
+ model_name='registerstatisticinfo', |
|
| 55 |
+ name='status', |
|
| 56 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 57 |
+ ), |
|
| 58 |
+ migrations.AlterField( |
|
| 59 |
+ model_name='saleclerksalestatisticinfo', |
|
| 60 |
+ name='status', |
|
| 61 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 62 |
+ ), |
|
| 63 |
+ migrations.AlterField( |
|
| 64 |
+ model_name='salestatisticinfo', |
|
| 65 |
+ name='status', |
|
| 66 |
+ field=models.BooleanField(default=True, help_text='Status', verbose_name='status'), |
|
| 67 |
+ ), |
|
| 68 |
+ ] |